Autogenerated HTML docs for v1.7.3.1-127-g1bb28 
diff --git a/diff-generate-patch.txt b/diff-generate-patch.txt index 8f9a241..3ac2bea 100644 --- a/diff-generate-patch.txt +++ b/diff-generate-patch.txt 
@@ -9,16 +9,15 @@  GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS environment variables.    What the -p option produces is slightly different from the traditional -diff format. +diff format:   -1. It is preceded with a "git diff" header, that looks like - this: +1. It is preceded with a "git diff" header that looks like this:    diff --git a/file1 b/file2  +  The `a/` and `b/` filenames are the same unless rename/copy is  involved. Especially, even for a creation or a deletion, -`/dev/null` is _not_ used in place of `a/` or `b/` filenames. +`/dev/null` is _not_ used in place of the `a/` or `b/` filenames.  +  When rename/copy is involved, `file1` and `file2` show the  name of the source file of the rename/copy and the name of @@ -37,18 +36,39 @@  similarity index <number>  dissimilarity index <number>  index <hash>..<hash> <mode> - -3. TAB, LF, double quote and backslash characters in pathnames - are represented as `\t`, `\n`, `\"` and `\\`, respectively. - If there is need for such substitution then the whole - pathname is put in double quotes. - ++ +File modes are printed as 6-digit octal numbers including the file type +and file permission bits. ++ +Path names in extended headers do not include the `a/` and `b/` prefixes. ++  The similarity index is the percentage of unchanged lines, and  the dissimilarity index is the percentage of changed lines. It  is a rounded down integer, followed by a percent sign. The  similarity index value of 100% is thus reserved for two equal  files, while 100% dissimilarity means that no line from the old  file made it into the new one. ++ +The index line includes the SHA-1 checksum before and after the change. +The <mode> is included if the file mode does not change; otherwise, +separate lines indicate the old and the new mode. + +3. TAB, LF, double quote and backslash characters in pathnames + are represented as `\t`, `\n`, `\"` and `\\`, respectively. + If there is need for such substitution then the whole + pathname is put in double quotes. + +4. All the `file1` files in the output refer to files before the + commit, and all the `file2` files refer to files after the commit. + It is incorrect to apply each change to each file sequentially. For + example, this patch will swap a and b: + + diff --git a/a b/b + rename from a + rename to b + diff --git a/b b/a + rename from b + rename to a      combined diff format